Рейтинговые книги
Читем онлайн Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 50 51 52 53 54 55 56 57 58 59
создается Display-объект, используя статический метод getDefault, затем с помощью конструктора создается экземпляр главного класса приложения, помним, что при этом в методе createContents определяются свойства окна приложения.

Далее окно открывается методом open класса Shell и производится компоновка содержимого окна методом layout класса Composite (суперкласса класса Shell).

После этого в методе main организуется цикл, который прекращается при закрытии окна (!shell.isDisposed ()) и в котором UI-поток засыпает, используя метод sleep класса Display, до тех пор, пока в очереди событий не появится какое-либо событие (!display.readAndDispatch ()).

Защищенный метод checkSubclass главного класса SWT-приложения переопределяет метод суперкласса Decorations.

Система SWT позволяет расширять свои классы только в определенных узлах иерархии программного интерфейса API, таких как классы Composite и Canvas.

Метод checkSubclass контролирует это правило до тех пор, пока он не будет переопределен, поэтому в данном случае главный класс SWT-приложения вынужден переопределить этот метод, так как он расширяет класс Shell, который не предназначен для расширения.

Откроем созданный главный класс SWT-приложения в Eclipse-редакторе плагина WindowBuilder. При этом редактор будет иметь три вкладки:

Source – редактирование исходного кода.

Design – визуальный графический редактор GUI-интерфейса.

Bindings – создание и редактирование связывания данных.

Откроем вкладку Design и увидим графический редактор, состоящий из набора окон, включающего в себя область визуального редактирования, палитру компонентов Palette, представление Structure, отображающее иерархию используемых компонентов, представление Properties, отображающее свойства выбранного компонента.

Область визуального редактирования представляет холст дизайнера, который отображает интерфейс приложения в том виде, в котором он будет виден пользователю.

Данная область имеет контекстное меню, позволяющее:

Вырезать, копировать, вставлять и удалять компоненты (команды Cut, Copy, Paste, Delete),

Предварительно посмотреть конечный вид интерфейса без запуска приложения (команда Test/Preview),

Обновить область (команда Refresh),

Добавить в компонент слушателя событий (команда Add event handler),

Установить компоновку дочерних компонентов (команда Set layout),

Установить минимальные размеры компонента (команда Set minimal size),

Удалить метод setSize (команда Remove setSize ()),

Определить SWT-стиль (команда Style),

Создать связывание данных для выбранного компонента (команда Bindings),

Определить родительский контейнер для выбранного компонента (команда Surround with),

Изменить порядок дочерних компонентов в списке (команда Order),

Подогнать размеры компонента (команда Autosize control),

Выбрать компоненты (команда Select),

Создать метод, возвращающий экземпляр компонента (команда Expose component),

Превратить в другой компонент (команда Morph),

Создать класс-фабрику для выбранного компонента (команда Factory),

Переименовать компонент (команда Rename).

Окно Structure имеет контекстное меню с аналогичной функциональностью.

Палитра компонентов Palette содержит следующие разделы:

System – инструменты выбора элементов: Selection (выбор элемента с помощью курсора), Choose Component (выбор элемента с помощью мастера Open type), Marquee (выбор группы элементов), Tab Order (определение порядка выбора элементов пользователем с помощью клавиши Tab).

Composites – контейнеры пакетов org.eclipse. swt. widgets и org.eclipse.swt.custom.

Layouts – компоновки пакетов org.eclipse.swt.layout, org.eclipse.swt.custom и swing2swt.layout.

Controls – SWT-компоненты пакетов org.eclipse. swt. widgets, org.eclipse.swt.custom и org.eclipse.swt.browser.

JFace – JFace-компоненты пакетов org.eclipse.jface.viewers, org.eclipse. jface. text и org.eclipse.jface.fieldassist.

Forms API – формы и компоновки пакета org.eclipse.ui.forms. widgets.

Menu – меню пакета org.eclipse. swt. widgets.

SWT_AWT – мост между системами SWT и AWT, представленный классом SWT_AWT, и набор AWT/Swing компонентов для встраивания в SWT-приложение.

Добавление компонентов из Palette-палитры в область визуального редактирования осуществляется нажатием соответствующего компонента в окне палитры и наведении курсора мышки на требуемую позицию компонента в области визуального редактирования.

После щелчка левой кнопки мышки компонент вставляется в область визуального редактирования с генерацией необходимого исходного кода.

При добавлении компонента в Shell-окно SWT-приложения, его исходный код добавляется в конструкторе класса между вызовами суперконструктора и метода createContents.

Добавлять компоненты из Palette-палитры можно также нажав соответствующий компонент в окне палитры, наведя курсор мышки на желаемый родительский компонент в окне Structure и щелкнув левой кнопкой мышки.

Окно Palette-палитры имеет контекстное меню, обеспечивающее добавление раздела и компонента в палитру, добавление класса-фабрики, импорт JAR-файла компонента, редактирование элемента палитры, удаление компонента из палитры, восстановление палитры по умолчанию, открытие мастера Palette Manager, импорт и экспорт палитры в XML-формате, общие настройки палитры.

Palette-палитру можно открыть в отдельном представлении с помощью выбора команды Show View | Other | WindowBuilder | Palette меню Window.

Графический редактор WindowBuilder-плагина имеет панель инструментов, дающую возможность предварительно посмотреть конечный вид интерфейса пользователя без запуска приложения, разобрать исходный код и обновить область визуального редактирования, отменить сделанные изменения, вырезать, копировать, вставлять и удалять компоненты, настроить выбранную компоновку и интернационализировать приложение.

Контейнеры раздела Composites Palette-палитры предназначены для объединения группы компонентов с применением к ним общей компоновки.

Базовым классом контейнеров раздела Composites Palette-палитры является класс Composite, который сам может служить контейнером для компонентов.

Раздел Composites Palette-палитры также содержит такие контейнеры как CBanner, CTabFolder, Group, SashForm, ScrolledComposite, TabFolder и ViewForm.

Метод setBackground, унаследованный классом Composite от класса Control, позволяет определить общий фон для группы компонентов.

Установить цвет фона, а также другие свойства Composite-компонента, такие как имя экземпляра класса, стиль, размеры, компоновку, связывание свойств, включение и выключение, шрифт, цвет переднего плана, порядок табуляции и текст подсказки можно в окне Properties вкладки Design.

Контейнер Group отличается от контейнера Composite отображением своих границ и возможностью определения заголовка.

Контейнер ScrolledComposite отображает свои границы и обеспечивает полосы прокрутки.

Контейнер SashForm группирует свои дочерние элементы в строки или столбцы, разделяя их полосой Sash.

Контейнер TabFolder представляет панель с вкладками, где вкладки представлены классом TabItem. Для вкладки TabItem можно определить заголовок и значок.

Контейнер CTabFolder также представляет панель с вкладками, где вкладки представлены классом CTabItem.

Отличие контейнера CTabFolder от контейнера TabFolder заключается в том, что для контейнера CTabFolder можно регулировать видимость границ, вертикальные и горизонтальные отступы, снабжать панель кнопками «свернуть» и «развернуть», регулировать подсветку выбранной вкладки, форму и расположение вкладки.

Вкладка CTabItem отличается от вкладки TabItem тем, что вкладку CTabItem можно обеспечить кнопкой «закрыть».

Контейнер ViewForm отличается от контейнера Composite возможностью регулировки отступов, видимости границ и размещения компонентов в верхней части по центру, справа и слева.

Контейнер ViewForm используется в Workbench-окне для компоновки метки, меню и панели инструментов представления.

Контейнер CBanner делит свое содержимое на три части – справа, слева и низ, в которых можно размещать компоненты.

Компоновки раздела Layouts Palette-палитры обеспечивают компоновку дочерних компонентов контейнера различным способом.

Определить компоновку для контейнера во вкладке Design WindowBuilder-редактора можно либо с помощью команды Set layout контекстного меню области визуального редактирования, либо в поле Layout окна Properties.

Базовым классом компоновок раздела Layouts служит класс Layout.

Раздел Layouts Palette-палитры предоставляет такие компоновки как Absolute layout, FillLayout, GridLayout, FormLayout, RowLayout, StackLayout, FlowLayout, BoxLayout, BorderLayout.

Компоновка Absolute layout – это нулевая компоновка setLayout (null), в которой координаты дочерних компонентов определяются аргументами метода setBounds суперкласса Control.

Компоновка FillLayout размещает компоненты в строку или столбец, подгоняя их к одному размеру, и имеет регулировки отступов и типа (горизонтальный или вертикальный).

Компоновка GridLayout представляет сетку ячеек для компоновки компонентов и имеет регулировки отступов и числа столбцов ячеек.

Размеры компонента, его выравнивание, а также количество ячеек строки и столбца, которые занимает компонент, могут быть установлены путем вызова метода setLayoutData суперкласса Control с аргументом – объектом GridData.

Компоновка FormLayout размещает компоненты с помощью

1 ... 50 51 52 53 54 55 56 57 58 59
На этой странице вы можете бесплатно читать книгу Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин бесплатно.

Оставить комментарий